﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace TribesPSO
{
    /// <summary>
    /// Thrown when attempting an operation on two dimensioned objects when the dimensions don't match.  IE attempting to add
    /// a 2 dimensional vector to a 3 dimensional vector
    /// </summary>
    [Serializable]
    public sealed class DimensionMismatchException:Exception
    {
        /// <summary>
        /// Initializes a new instance of the DimensionMismatchException class
        /// </summary>
        public DimensionMismatchException() : base() { }

        /// <summary>
        /// Initializes a new instance of the DimensionMismatchException class with a specified error message.
        /// </summary>
        /// <param name="message">The error message that explains the reason for the exception.</param>
        public DimensionMismatchException(string message) : base(message) { }

        /// <summary>
        /// Initializes a new instance of the DimensionMismatchException class with a specified error message
        /// and a reference to the inner exception that is the cause of this exception.
        /// </summary>
        /// <param name="message">The error message that explains the reason for the exception.</param>
        /// <param name="innerException">The exception that is the cause of the current exception.</param>
        public DimensionMismatchException(string message, Exception innerException) : base(message, innerException) { }
        private DimensionMismatchException(
            System.Runtime.Serialization.SerializationInfo info,
            System.Runtime.Serialization.StreamingContext context
            )
            : base(info, context) { }
    }
}
